1 /* 2 * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 /* 24 @test 25 @summary test ISO639-2 language codes 26 @compile -encoding ascii -source 5 Bug4175998Test.java 27 @run main Bug4175998Test 28 @bug 4175998 29 */ 30 /* 31 * 32 * 33 * (C) Copyright IBM Corp. 1998 - All Rights Reserved 34 * 35 * The original version of this source code and documentation is 36 * copyrighted and owned by IBM. These materials are provided 37 * under terms of a License Agreement between IBM and Sun. 38 * This technology is protected by multiple US and International 39 * patents. This notice and attribution to IBM may not be removed. 40 * 41 */ 42 43 import java.util.*; 44 import java.io.*; 45 46 /** 47 * Bug4175998Test verifies that the following bug has been fixed: 48 * Bug 4175998 - The java.util.Locale.getISO3Language() returns wrong result for a locale with 49 * language code 'ta'(Tamil). 50 */ 51 public class Bug4175998Test extends LocaleTestFmwk { 52 public static void main(String[] args) throws Exception { 53 new Bug4175998Test().run(args); 54 //generateTables(); //uncomment this to regenerate data tables 55 } 56 57 public void testIt() throws Exception { 58 boolean bad = false; 59 for (int i = 0; i < CODES.length; i++) { 60 final String[] localeCodes = CODES[i]; 61 final Locale l = new Locale(localeCodes[0], ""); 62 final String iso3 = l.getISO3Language(); 63 if (!iso3.equals(localeCodes[1]) /*&& !iso3.equals(localeCodes[2])*/) { 64 logln("Locale("+l+") returned bad ISO3 language code." 65 +" Got '"+iso3+"' instead of '"+localeCodes[1]+"'"/*+" or '"+localeCodes[2]+"'"*/); 66 bad = true; 67 } 68 } 69 if (bad) { 70 errln("Bad ISO3 language codes detected."); 71 } 72 } 73 74 private static final String[][] CODES = { 75 {"pt","por","por"}, 76 {"eu","eus","baq"}, 77 {"ps","pus","pus"}, 78 {"et","est","est"}, 79 {"ka","kat","geo"}, 80 {"es","spa","spa"}, 81 {"eo","epo","epo"}, 82 {"en","eng","eng"}, 83 {"pl","pol","pol"}, 84 {"el","ell","gre"}, 85 {"uz","uzb","uzb"}, 86 {"jv","jav","jav"}, 87 {"ur","urd","urd"}, 88 {"uk","ukr","ukr"}, 89 {"ug","uig","uig"}, 90 {"zu","zul","zul"}, 91 {"ja","jpn","jpn"}, 92 {"or","ori","ori"}, 93 {"om","orm","orm"}, 94 {"zh","zho","chi"}, 95 {"tw","twi","twi"}, 96 {"de","deu","ger"}, 97 {"oc","oci","oci"}, 98 {"za","zha","zha"}, 99 {"tt","tat","tat"}, 100 {"iu","iku","iku"}, 101 {"ts","tso","tso"}, 102 {"it","ita","ita"}, 103 {"tr","tur","tur"}, 104 {"da","dan","dan"}, 105 {"is","isl","ice"}, 106 {"to","ton","ton"}, 107 {"tl","tgl","tgl"}, 108 {"tk","tuk","tuk"}, 109 {"ik","ipk","ipk"}, 110 {"ti","tir","tir"}, 111 {"th","tha","tha"}, 112 {"tg","tgk","tgk"}, 113 {"te","tel","tel"}, 114 {"cy","cym","wel"}, 115 {"ie","ile","ile"}, 116 {"id","ind","ind"}, 117 {"ta","tam","tam"}, 118 {"ia","ina","ina"}, 119 {"cs","ces","cze"}, 120 {"yo","yor","yor"}, 121 {"no","nor","nor"}, 122 {"co","cos","cos"}, 123 {"nl","nld","dut"}, 124 {"yi","yid","yid"}, 125 {"hy","hye","arm"}, 126 {"sw","swa","swa"}, 127 {"ne","nep","nep"}, 128 {"sv","swe","swe"}, 129 {"su","sun","sun"}, 130 {"hu","hun","hun"}, 131 {"na","nau","nau"}, 132 {"sr","srp","scc"}, 133 {"ca","cat","cat"}, 134 {"sq","sqi","alb"}, 135 {"hr","hrv","scr"}, 136 {"so","som","som"}, 137 {"sn","sna","sna"}, 138 {"sm","smo","smo"}, 139 {"sl","slv","slv"}, 140 {"sk","slk","slo"}, 141 {"si","sin","sin"}, 142 {"hi","hin","hin"}, 143 {"my","mya","bur"}, 144 {"sd","snd","snd"}, 145 {"he","heb","heb"}, 146 {"sa","san","san"}, 147 {"mt","mlt","mlt"}, 148 {"ms","msa","may"}, 149 {"ha","hau","hau"}, 150 {"mr","mar","mar"}, 151 {"br","bre","bre"}, 152 {"mo","mol","mol"}, 153 {"bo","bod","tib"}, 154 {"mn","mon","mon"}, 155 {"bn","ben","ben"}, 156 {"ml","mal","mal"}, 157 {"mk","mkd","mac"}, 158 {"xh","xho","xho"}, 159 {"mi","mri","mao"}, 160 {"bi","bis","bis"}, 161 {"bh","bih","bih"}, 162 {"mg","mlg","mlg"}, 163 {"bg","bul","bul"}, 164 {"rw","kin","kin"}, 165 {"be","bel","bel"}, 166 {"ru","rus","rus"}, 167 {"gu","guj","guj"}, 168 {"ba","bak","bak"}, 169 {"ro","ron","rum"}, 170 {"rm","roh","roh"}, 171 {"gn","grn","grn"}, 172 {"az","aze","aze"}, 173 {"ay","aym","aym"}, 174 {"gd","gla","gla"}, 175 {"lv","lav","lav"}, 176 {"lt","lit","lit"}, 177 {"ga","gle","gle"}, 178 {"as","asm","asm"}, 179 {"ar","ara","ara"}, 180 {"wo","wol","wol"}, 181 {"ln","lin","lin"}, 182 {"am","amh","amh"}, 183 {"fy","fry","fry"}, 184 {"af","afr","afr"}, 185 {"qu","que","que"}, 186 {"ab","abk","abk"}, 187 {"la","lat","lat"}, 188 {"aa","aar","aar"}, 189 {"fr","fra","fre"}, 190 {"fo","fao","fao"}, 191 {"fj","fij","fij"}, 192 {"fi","fin","fin"}, 193 {"ky","kir","kir"}, 194 {"ku","kur","kur"}, 195 {"fa","fas","per"}, 196 {"ks","kas","kas"}, 197 {"vo","vol","vol"}, 198 {"ko","kor","kor"}, 199 {"kn","kan","kan"}, 200 {"kk","kaz","kaz"}, 201 {"vi","vie","vie"}, 202 }; 203 204 /* 205 The following code was used to generate the table above from the two ISO standards. 206 It matches the language names (not the codes) from both standards to associate 207 the two and three letter codes. 208 209 private static final String ISO639 = "d:\\temp\\iso639.txt"; 210 private static final String ISO6392 = "d:\\temp\\iso-639-2.txt"; 211 private static void generateTables() { 212 try { 213 BufferedReader ISO639File = new BufferedReader(new FileReader(ISO639)); 214 Hashtable i639 = new Hashtable(); 215 for (String line = ISO639File.readLine(); line != null; line = ISO639File.readLine()) { 216 if (!line.startsWith("#")) { 217 final int ndx = line.indexOf(' '); 218 final String arg1 = line.substring(0, ndx); 219 final int ndx2 = line.indexOf(' ', ndx+1); 220 final String arg2 = line.substring(ndx+1, ndx2 < 0 ? line.length() : ndx2); 221 i639.put(arg1, arg2); 222 } 223 } 224 225 BufferedReader ISO6392File = new BufferedReader(new FileReader(ISO6392)); 226 Hashtable i6392 = new Hashtable(); 227 for (String line = ISO6392File.readLine(); line != null; line = ISO6392File.readLine()) { 228 final int ndx = line.indexOf(' '); 229 final int ndx2 = line.indexOf(' ', ndx+1); 230 int ndx3 = line.indexOf(' ', ndx2+1); 231 if (ndx3 < 0) ndx3 = line.length(); 232 final String arg1 = line.substring(0, ndx); 233 final String arg2 = line.substring(ndx+1, ndx2); 234 final String arg3 = line.substring(ndx2+1, ndx3); 235 i6392.put(arg3, new ISO6392Entry(arg1, arg2)); 236 } 237 238 Enumeration keys = i639.keys(); 239 while (keys.hasMoreElements()) { 240 final Object key = keys.nextElement(); 241 final Object name = i639.get(key); 242 final Object value = i6392.get(name); 243 244 if (value != null) { 245 System.out.print("{"); 246 System.out.print("\""+key+"\","); 247 System.out.print(value); 248 System.out.println("},"); 249 } 250 } 251 } catch (Exception e) { 252 System.out.println(e); 253 } 254 } 255 256 257 private static final class ISO6392Entry { 258 public final String code; 259 public final String name; 260 public ISO6392Entry(String code, String name) { 261 this.code = code; 262 this.name = name; 263 } 264 public String toString() { 265 return "\""+code+"\",\""+name+"\""; 266 } 267 268 } 269 */ 270 271 } 272 273 /* 274 275 data from ftp://dkuug.dk on March 4, 1999 276 verified by http://www.triacom.com/archive/iso639-2.en.html 277 278 iso 639 data 279 aa Afar 280 ab Abkhazian 281 af Afrikaans 282 am Amharic 283 ar Arabic 284 as Assamese 285 ay Aymara 286 az Azerbaijani 287 ba Bashkir 288 be Belarussian 289 bg Bulgarian 290 bh Bihari 291 bi Bislama 292 bn Bengali 293 bo Tibetan 294 br Breton 295 ca Catalan 296 co Corsican 297 cs Czech 298 cy Welsh 299 da Danish 300 de German 301 dz Bhutani 302 el Greek 303 en English 304 eo Esperanto 305 es Spanish 306 et Estonian 307 eu Basque 308 fa Persian 309 fi Finnish 310 fj Fijian 311 fo Faroese 312 fr French 313 fy Frisian 314 ga Irish 315 gd Gaelic 316 gl Galician 317 gn Guarani 318 gu Gujarati 319 ha Hausa 320 he Hebrew 321 hi Hindi 322 hr Croatian 323 hu Hungarian 324 hy Armenian 325 ia Interlingua 326 id Indonesian 327 ie Interlingue 328 ik Inupiak 329 is Icelandic 330 it Italian 331 iu Inuktitut 332 ja Japanese 333 jw Javanese 334 ka Georgian 335 kk Kazakh 336 kl Greenlandic 337 km Cambodian 338 kn Kannada 339 ko Korean 340 ks Kashmiri 341 ku Kurdish 342 ky Kirghiz 343 la Latin 344 ln Lingala 345 lo Laothian 346 lt Lithuanian 347 lv Latvian 348 mg Malagasy 349 mi Maori 350 mk Macedonian 351 ml Malayalam 352 mn Mongolian 353 mo Moldavian 354 mr Marathi 355 ms Malay 356 mt Maltese 357 my Burmese 358 na Nauru 359 ne Nepali 360 nl Dutch 361 no Norwegian 362 oc Occitan 363 om Oromo 364 or Oriya 365 pa Punjabi 366 pl Polish 367 ps Pushto 368 pt Portuguese 369 qu Quechua 370 rm Raeto-Romance 371 rn Kirundi 372 ro Romanian 373 ru Russian 374 rw Kinyarwanda 375 sa Sanskrit 376 sd Sindhi 377 sg Sangho 378 sh Croatian (Serbo) 379 si Sinhalese 380 sk Slovak 381 sl Slovenian 382 sm Samoan 383 sn Shona 384 so Somali 385 sq Albanian 386 sr Serbian 387 ss Siswati 388 st Sesotho 389 su Sundanese 390 sv Swedish 391 sw Swahili 392 ta Tamil 393 te Telugu 394 tg Tajik 395 th Thai 396 ti Tigrinya 397 tk Turkmen 398 tl Tagalog 399 tn Setswana 400 to Tonga 401 tr Turkish 402 ts Tsonga 403 tt Tatar 404 tw Twi 405 ug Uighur 406 uk Ukrainian 407 ur Urdu 408 uz Uzbek 409 vi Vietnamese 410 vo Volapuk 411 wo Wolof 412 xh Xhosa 413 yi Yiddish 414 yo Yoruba 415 za Zhuang 416 zh Chinese 417 zu Zulu 418 419 ISO 639-2 data 420 421 aar aar Afar 422 abk abk Abkhazian 423 ace ace Achinese 424 ach ach Acoli 425 ada ada Adangme 426 afa afa Afro-Asiatic (Other) 427 afh afh Afrihili 428 afr afr Afrikaans 429 aka aka Akan 430 akk akk Akkadian 431 ale ale Aleut 432 alg alg Algonquian languages 433 amh amh Amharic 434 ang ang English-Old (ca. 450-1100) 435 apa apa Apache languages 436 ara ara Arabic 437 arc arc Aramaic 438 arn arn Araucanian 439 arp arp Arapaho 440 art art Artificial (Other) 441 arw arw Arawak 442 asm asm Assamese 443 ath ath Athapascan languages 444 aus aus Australian languages 445 ava ava Avaric 446 ave ave Avestan 447 awa awa Awadhi 448 aym aym Aymara 449 aze aze Azerbaijani 450 bad bad Banda 451 bai bai Bamileke languages 452 bak bak Bashkir 453 bal bal Baluchi 454 bam bam Bambara 455 ban ban Balinese 456 bas bas Basa 457 bat bat Baltic (Other) 458 bej bej Beja 459 bel bel Belarussian 460 bem bem Bemba 461 ben ben Bengali 462 ber ber Berber (Other) 463 bho bho Bhojpuri 464 bih bih Bihari 465 bik bik Bikol 466 bin bin Bini 467 bis bis Bislama 468 bla bla Siksika 469 bnt bnt Bantu (Other) 470 bod tib Tibetan 471 bra bra Braj 472 bre bre Breton 473 btk btk Batak (Indonesia) 474 bua bua Buriat 475 bug bug Buginese 476 bul bul Bulgarian 477 cad cad Caddo 478 cai cai Central-American-Indian (Other) 479 car car Carib 480 cat cat Catalan 481 cau cau Caucasian (Other) 482 ceb ceb Cebuano 483 cel cel Celtic (Other) 484 ces cze Czech 485 cha cha Chamorro 486 chb chb Chibcha 487 che che Chechen 488 chg chg Chagatai 489 chk chk Chuukese 490 chm chm Mari 491 chn chn Chinook-jargon 492 cho cho Choctaw 493 chp chp Chipewyan 494 chr chr Cherokee 495 chu chu Church-Slavic 496 chv chv Chuvash 497 chy chy Cheyenne 498 cmc cmc Chamic languages 499 cop cop Coptic 500 cor cor Cornish 501 cos cos Corsican 502 cpe cpe Creoles-and-pidgins-English-based (Other) 503 cpf cpf Creoles-and-pidgins-French-based (Other) 504 cpp cpp Creoles-and-pidgins-Portuguese-based (Other) 505 cre cre Cree 506 crp crp Creoles-and-pidgins (Other) 507 cus cus Cushitic (Other) 508 cym wel Welsh 509 dak dak Dakota 510 dan dan Danish 511 day day Dayak 512 del del Delaware 513 den den Slave (Athapascan) 514 deu ger German 515 dgr dgr Dogrib 516 din din Dinka 517 div div Divehi 518 doi doi Dogri 519 dra dra Dravidian (Other) 520 dua dua Duala 521 dum dum Dutch-Middle (ca. 1050-1350) 522 dyu dyu Dyula 523 dzo dzo Dzongkha 524 efi efi Efik 525 egy egy Egyptian (Ancient) 526 eka eka Ekajuk 527 ell gre Greek Modern (post 1453) 528 elx elx Elamite 529 eng eng English 530 enm enm English-Middle (1100-1500) 531 epo epo Esperanto 532 est est Estonian 533 eus baq Basque 534 ewe ewe Ewe 535 ewo ewo Ewondo 536 fan fan Fang 537 fao fao Faroese 538 fas per Persian 539 fat fat Fanti 540 fij fij Fijian 541 fin fin Finnish 542 fiu fiu Finno-Ugrian (Other) 543 fon fon Fon 544 fra fre French 545 frm frm French-Middle (ca. 1400-1600) 546 fro fro French-Old (842-ca. 1400) 547 fry fry Frisian 548 ful ful Fulah 549 fur fur Friulian 550 gaa gaa Ga 551 gay gay Gayo 552 gba gba Gbaya 553 gem gem Germanic (Other) 554 gez gez Geez 555 gil gil Gilbertese 556 gdh gae Gaelic 557 gai iri Irish 558 glg glg Gallegan 559 glv glv Manx 560 gmh gmh German-Middle High (ca. 1050-1500) 561 goh goh German-Old High (ca. 750-1050) 562 gon gon Gondi 563 gor gor Gorontalo 564 got got Gothic 565 grb grb Grebo 566 grc grc Greek-Ancient (to 1453) 567 grn grn Guarani 568 guj guj Gujarati 569 gwi gwi Gwich'in 570 hai hai Haida 571 hau hau Hausa 572 haw haw Hawaiian 573 heb heb Hebrew 574 her her Herero 575 hil hil Hiligaynon 576 him him Himachali 577 hin hin Hindi 578 hit hit Hittite 579 hmn hmn Hmong 580 hmo hmo Hiri Motu 581 hrv scr Croatian 582 hun hun Hungarian 583 hup hup Hupa 584 hye arm Armenian 585 iba iba Iban 586 ibo ibo Igbo 587 ijo ijo Ijo 588 iku iku Inuktitut 589 ile ile Interlingue 590 ilo ilo Iloko 591 ina ina Interlingua (International Auxilary Language Association) 592 inc inc Indic (Other) 593 ind ind Indonesian 594 ine ine Indo-European (Other) 595 ipk ipk Inupiak 596 ira ira Iranian (Other) 597 iro iro Iroquoian languages 598 isl ice Icelandic 599 ita ita Italian 600 jaw jav Javanese 601 jpn jpn Japanese 602 jpr jpr Judeo-Persian 603 jrb jrb Judeo-Arabic 604 kaa kaa Kara-Kalpak 605 kab kab Kabyle 606 kac kac Kachin 607 kal kal Kalaallisut 608 kam kam Kamba 609 kan kan Kannada 610 kar kar Karen 611 kas kas Kashmiri 612 kat geo Georgian 613 kau kau Kanuri 614 kaw kaw Kawi 615 kaz kaz Kazakh 616 kha kha Khasi 617 khi khi Khoisan (Other) 618 khm khm Khmer 619 kho kho Khotanese 620 kik kik Kikuyu 621 kin kin Kinyarwanda 622 kir kir Kirghiz 623 kmb kmb Kimbundu 624 kok kok Konkani 625 kom kom Komi 626 kon kon Kongo 627 kor kor Korean 628 kos kos Kosraean 629 kpe kpe Kpelle 630 kro kro Kru 631 kru kru Kurukh 632 kua kua Kuanyama 633 kum kum Kumyk 634 kur kur Kurdish 635 kut kut Kutenai 636 lad lad Ladino 637 lah lah Lahnda 638 lam lam Lamba 639 lao lao Lao 640 lat lat Latin 641 lav lav Latvian 642 lez lez Lezghian 643 lin lin Lingala 644 lit lit Lithuanian 645 lol lol Mongo 646 loz loz Lozi 647 ltz ltz Letzeburgesch 648 lua lua Luba-Lulua 649 lub lub Luba-Katanga 650 lug lug Ganda 651 lui lui Luiseno 652 lun lun Lunda 653 luo luo Luo (Kenya and Tanzania) 654 lus lus Lushai 655 mad mad Madurese 656 mag mag Magahi 657 mah mah Marshall 658 mai mai Maithili 659 mak mak Makasar 660 mal mal Malayalam 661 man man Mandingo 662 map map Austronesian (Other) 663 mar mar Marathi 664 mas mas Masai 665 mdr mdr Mandar 666 men men Mende 667 mga mga Irish-Middle (900-1200) 668 mic mic Micmac 669 min min Minangkabau 670 mis mis Miscellaneous languages 671 mkd mac Macedonian 672 mkh mkh Mon-Khmer (Other) 673 mlg mlg Malagasy 674 mlt mlt Maltese 675 mni mni Manipuri 676 mno mno Manobo languages 677 moh moh Mohawk 678 mol mol Moldavian 679 mon mon Mongolian 680 mos mos Mossi 681 mri mao Maori 682 msa may Malay 683 mul mul Multiple languages 684 mun mun Munda languages 685 mus mus Creek 686 mwr mwr Marwari 687 mya bur Burmese 688 myn myn Mayan languages 689 nah nah Nahuatl 690 nai nai North American Indian (Other) 691 nau nau Nauru 692 nav nav Navajo 693 nbl nbl Ndebele, South 694 nde nde Ndebele, North 695 ndo ndo Ndonga 696 nep nep Nepali 697 new new Newari 698 nia nia Nias 699 nic nic Niger-Kordofanian (Other) 700 niu niu Niuean 701 nld dut Dutch 702 non non Norse, Old 703 nor nor Norwegian 704 nso nso Sohto, Northern 705 nub nub Nubian languages 706 nya nya Nyanja 707 nym nym Nyamwezi 708 nyn nyn Nyankole 709 nyo nyo Nyoro 710 nzi nzi Nzima 711 oci oci Occitan (post 1500) 712 oji oji Ojibwa 713 ori ori Oriya 714 orm orm Oromo 715 osa osa Osage 716 oss oss Ossetic 717 ota ota Turkish, Ottoman (1500-1928) 718 oto oto Otomian languages 719 paa paa Papuan (Other) 720 pag pag Pangasinan 721 pal pal Pahlavi 722 pam pam Pampanga 723 pan pan Panjabi 724 pap pap Papiamento 725 pau pau Palauan 726 peo peo Persian, Old (ca. 600-400 B.C.) 727 phi phi Philippine (Other) 728 phn phn Phoenician 729 pli pli Pali 730 pol pol Polish 731 pon pon Pohnpeian 732 por por Portuguese 733 pra pra Prakrit languages 734 pro pro Proven�al, Old (to 1500) 735 pus pus Pushto 736 qaa-qtz qaa-qtz Reserved for local use 737 que que Quechua 738 raj raj Rajasthani 739 rap rap Rapanui 740 rar rar Rarotongan 741 roa roa Romance (Other) 742 roh roh Raeto-Romance 743 rom rom Romany 744 ron rum Romanian 745 run run Rundi 746 rus rus Russian 747 sad sad Sandawe 748 sag sag Sango 749 sah sah Yakut 750 sai sai South American Indian (Other) 751 sal sal Salishan languages 752 sam sam Samaritan Aramaic 753 san san Sanskrit 754 sas sas Sasak 755 sat sat Santali 756 sco sco Scots 757 sel sel Selkup 758 sem sem Semitic (Other) 759 sga sga Irish-Old (to 900) 760 shn shn Shan 761 sid sid Sidamo 762 sin sin Sinhalese 763 sio sio Siouan languages 764 sit sit Sino-Tibetan (Other) 765 sla sla Slavic (Other) 766 slk slo Slovak 767 slv slv Slovenian 768 smi smi Sami languages 769 smo smo Samoan 770 sna sna Shona 771 snd snd Sindhi 772 snk snk Soninke 773 sog sog Sogdian 774 som som Somali 775 son son Songhai 776 sot sot Sotho Southern 777 spa spa Spanish 778 sqi alb Albanian 779 srd srd Sardinian 780 srp scc Serbian 781 srr srr Serer 782 ssa ssa Nilo-Saharan (Other) 783 ssw ssw Swati 784 suk suk Sukuma 785 sun sun Sundanese 786 sus sus Susu 787 sux sux Sumerian 788 swa swa Swahili 789 swe swe Swedish 790 syr syr Syriac 791 tah tah Tahitian 792 tai tai Tai (Other) 793 tam tam Tamil 794 tat tat Tatar 795 tel tel Telugu 796 tem tem Timne 797 ter ter Tereno 798 tet tet Tetum 799 tgk tgk Tajik 800 tgl tgl Tagalog 801 tha tha Thai 802 tig tig Tigre 803 tir tir Tigrinya 804 tiv tiv Tiv 805 tkl tkl Tokelau 806 tli tli Tlingit 807 tmh tmh Tamashek 808 tog tog Tonga (Nyasa) 809 ton ton Tonga (Tonga Islands) 810 tpi tpi Tok Pisin 811 tsi tsi Tsimshian 812 tsn tsn Tswana 813 tso tso Tsonga 814 tuk tuk Turkmen 815 tum tum Tumbuka 816 tur tur Turkish 817 tut tut Altaic 818 tvl tvl Tuvalu 819 twi twi Twi 820 tyv tyv Tuvinian 821 uga uga Ugaritic 822 uig uig Uighur 823 ukr ukr Ukrainian 824 umb umb Umbundu 825 und und Undetermined 826 urd urd Urdu 827 uzb uzb Uzbek 828 vai vai Vai 829 ven ven Venda 830 vie vie Vietnamese 831 vol vol Volapuk 832 vot vot Votic 833 wak wak Wakashan 834 wal wal Walamo 835 war war Waray 836 was was Washo 837 wen wen Sorbian 838 wol wol Wolof 839 xho xho Xhosa 840 yao yao Yao 841 yap yap Yapese 842 yid yid Yiddish 843 yor yor Yoruba 844 ypk ypk Yupik 845 zap zap Zapotec 846 zen zen Zenaga 847 zha zha Zhuang 848 zho chi Chinese 849 znd znd Zande 850 zul zul Zulu 851 zun zun Zuni 852 853 */